package grupo2.bjTest;

import grupo2.strategies.EstrategiaBlackJack;
import grupo2.strategies.EstrategiaNormal;

public class ApuestaTest extends Test {
	
	public ApuestaTest(String arg0) {
		super(arg0);
	}

	protected void setUp() {
		super.setUp();
	}
	
	
	public void testPagarApuestaNormal() {
		
		//El jugador hace una apuesta de 20
		jugadorConservador.setApuesta(20);
		jugadorConservador.setEstrategia(new EstrategiaNormal(jugadorConservador));		
		jugadorConservador.getEstrategia().realizarApuesta();
		
		jugadorConservador.getCartas().add(figuraJ);
		jugadorConservador.getCartas().add(figuraQ);
		
		banca.getCartas().add(figuraK);
		banca.getCartas().add(cuatro);
		
		mesa.addApostador(jugadorConservador);
		mesa.setBanca(banca);
		
		assertTrue(jugadorConservador.getPuntaje()==20);
		assertTrue(banca.getPuntaje()==14);
		
		//El apostador le gano a la banca entonces la banca le paga
		//el doble de lo que aposto.

		banca.pagarApuesta(jugadorConservador);
		
		assertTrue(jugadorConservador.getDinero()==40);
	}
	
	public void testPagarApuestaBlackJack() {
		jugadorLaken.setDinero(100);
		jugadorLaken.setEstrategia(new EstrategiaBlackJack(jugadorLaken));		
		jugadorLaken.realizaApuesta();
		
		//Hago que el jugador tenga Black Jack
		jugadorLaken.recibirCarta(as);
		jugadorLaken.recibirCarta(figuraK);
		assertEquals(jugadorLaken.getPuntaje(), 21);
		
		banca.recibirCarta(figuraK);
		banca.recibirCarta(cuatro);
		assertEquals(banca.getPuntaje(), 14);
		
		mesa.addApostador(jugadorLaken);
		mesa.setBanca(banca);
		
		//Suponemos que el apostador le gano a la banca entonces la banca le paga
		//el 150% de lo que aposto.
		
		int recargo =(int) (jugadorLaken.getApuesta() * 1.5);
		System.out.println("Apuesta: " + jugadorLaken.getApuesta());
		mesa.determinarGanadores();
		System.out.println("Dinero total: " + jugadorLaken.getDinero());
		assertEquals(jugadorLaken.getDinero(),100 + recargo);
	}	
	
	
	protected void tearDown() {
		super.tearDown();
	}

}